import abc
from typing import TypeVar

from zkl_pyutils_registries import SubTypeMatcher, SupTypeMatcher

from zkl_pyutils_serialization.basics import Tag


class Format(abc.ABC):
    pass


AnyFormat = TypeVar('AnyFormat', bound=Format)

SrcFormat = Tag('SrcFormat', SupTypeMatcher[AnyFormat]())
DstFormat = Tag('DstFormat', SubTypeMatcher[AnyFormat]())
